% Version control information:
%$HeadURL: http://practicas-r.googlecode.com/svn/trunk/introduccion_r/introduccion_r.tex $
%$LastChangedDate: 2011-12-05 12:41:27 +0000 (Mon, 05 Dec 2011) $
%$LastChangedRevision: 17 $
%$LastChangedBy: asalber $
%$Id: introduccion_r.tex 17 2011-12-05 12:41:27Z asalber $

\chapter{Introducción a R y R-commander}

\section{Introducción}
La gran potencia de cálculo alcanzada por los ordenadores ha convertido a los mismos en poderosas herramientas al
servicio de todas aquellas disciplinas que, como la estadística, requieren manejar un gran volumen de datos. Actualmente,
prácticamente nadie se plantea hacer un estudio estadístico serio sin la ayuda de un buen programa de análisis
estadístico.

\emph{R} es un potente lenguaje de programación que incluye multitud de funciones para la representación el análisis de
datos. Fue desarrollado por Robert Gentleman y Ross Ihaka en la Universidad de Auckland en Nueva Zelanda, aunque actualmente
es mantenido por una enorme comunidad científica en todo el mundo.

\begin{center}
\includegraphics[scale=0.5]{introduccion_r/img/Rlogo}
\end{center} 

La ventajas de R frente a otros programas habituales de análisis de datos, como pueden ser SPSS, SAS, SPlus, Matlab o
Minitab, son múltiples:
\begin{itemize}
\item Es software libre y por tanto gratuito. Puede descargarse desde la web 
\url{http://www.r-project.org/}.
\item Es multiplataforma. Existen versiones para Windows, Macintosh, Linux y otras plataformas.
\item Está avalado y en constante desarrollo por una amplia comunidad científica que lo utiliza como estándar para el
análisis de datos.
\item Cuenta con multitud de paquetes para todo tipo de análisis estadísticos y representaciones gráficas, desde los más
habituales, hasta los más novedosos y sofisticados que no incluyen otros programas. Los paquetes están organizados y
documentados en un repositorio CRAN (Comprehensive R Archive Network) desde donde pueden descargarse libremente. En
España hay una copia de este repositorio en la web \url{http://cran.es.r-project.org/}.
\item Es programable, lo que permite que el usuario pueda crear fácilmente sus propias funciones o paquetes para
análisis de datos específicos.
\item Existen multitud de libros, manuales y tutoriales libres que permiten su aprendizaje e ilustran el análisis
estadístico de datos en distintas disciplinas científicas como las matemáticas, la física, la biología, la psicología, la medicina,
etc.
\end{itemize}

Por defecto el entorno de trabajo de R es en línea de comandos, lo que significa que los cálculos y los
análisis se relizan mediante comandos o instrucciones que el usuario teclea en una ventana de texto. No obstante,
existen distintas interfaces gráficas de usuario que facilitan su uso, sobre todo para usuarios noveles. Una de las
interfaces gráficas de usuario más extendidas es \emph{R-commander}, desarrollada por John Fox, y será la que se
utilizará a lo largo de las prácticas.

El objetivo de esta práctica es introducir al alumno en la utilización de este programa, enseñándole a realizar las
operaciones básicas más habituales de carga y manipulación de datos.

\section{Instalación}
\subsection{Instalación de R}
\begin{description}
\item[Linux] En la distribución Debian y cualquiera de sus derivadas (Ubuntu, Kubuntu, etc.) basta con teclear en la línea de
comandos
\begin{lstlisting}
> sudo apt-get install r-base-html r-cran-rcmdr r-cran-rodbc r-doc-html r-recommended
\end{lstlisting}
\item[Windows] Descargar de \url{http://cran.es.r-project.org/bin/windows/base/release.htm} el programa de instalación
de R, ejecutarlo y seguir las instrucciones de instalación.
\end{description}

\subsection{Instalación de la interfaz gráfica R-commander y otros paquetes}
La interfaz gráfica de usuario R-commander viene en el paquete \comando{Rcmdr}, que puede instalarse como cualquier
otro paquete para R. Para instalarlo, una vez arrancado R, hay que teclear el comando
\begin{lstlisting}
> install.packages("Rcmdr", dependencies=TRUE)
\end{lstlisting}

La instalación de cualquier otro paquete se realiza con el mismo comando, cambiando el nombre del paquete por el
deseado.

En Windows, también puede instalarse desde la ventana de R mediante el menú \menu{Paquetes\flecha Instalar Paquete(s)},
eligiendo el respositorio desde el cual se quiere instalar el paquete, por ejemplo Spain (Madrid), y seleccionando el
paquete deseado.

\section{Arranque}
Como cualquier otra aplicación de Windows, para arrancar el programa hay que hacer click sobre la opción
correspondiente del menú \menu{Inicio\flecha Programas\flecha R}, o bien sobre el icono de escritorio
\begin{center}
  \includegraphics[scale=0.3]{introduccion_r/img/icono}
\end{center}
Una vez arrancado, para arrancar la interfaz gráfica de usuario R-commander hay que cargar el paquete \comando{Rcmdr} y
para ello hay que teclear el comando
\begin{lstlisting}
> library("Rcmdr")
\end{lstlisting}

Para cargar cualquier otro paquete se utiliza el mismo comando, cambiando el nombre del paquete por el deseado.

Si se cierra R-commander, para volver a cargarlo se utiliza el comando \comando{Commander()}.

\begin{figure}[htp]
\begin{center}
  \includegraphics[scale=0.5]{introduccion_r/img/rcommander}
  \caption{Interfaz gráfica de usuario de R-commander.}
  \label{g:rcommander}
\end{center}
\end{figure}

La interfaz gráfica de usuario R-commander se muestra en la figura~\ref{g:rcommander} por los siguientes elementos:
\begin{itemize}
\item \textbf{Barra de menús}. Contiene distintos menús con operaciones que pueden realizarse con R.
\item \textbf{Barra de botones}. Contiene botones para seleccionar, editar o visualizar el conjunto de
datos activos y también el modelo activo.
\item \textbf{Ventana de instrucciones}. Es una ventana de texto similar a la línea de comandos de R donde se pueden
introducir directamente comandos para R. Se puede ejecutar un comando o un bloque de comandos situándose en la línea que contiene
el comando y pulsando sobre el botón \boton{Ejecutar} o bien tecleando \comando{Ctrl+r}.

Cada vez que se seleccione un menú que lleve asociado la ejecución de algún comando, dicho comando aparecerá en esta
ventana. Esto permite modificar fácilmente los parámetros del comando y volver a ejecutarlo rápidamente sin necesidad
de volver al menú. 
\item \textbf{Ventana de resultados}. Es una ventana de texto en la que aparecerán las salidas que generen los comandos
que se ejecuten en R. Las instrucciones aparecen en color rojo y los resultados en azul. 
\item \textbf{Mensajes}. Es una ventana de texto donde se muestra información adicional sobre errores, advertencias u
otra información auxiliar al ejecutar un comando. 
\end{itemize}

\section{Tipos de datos y operadores aritméticos y lógicos}
En R existen distintos tipos de datos. Los más básicos son:
\begin{description}
\item[Numeric]: Es cualquier número decimal. Se utiliza el punto como separador de decimales. Por defecto, cualquier
número que se teclee tomará este tipo.
\item[Integer]: Es cualquier número entero. Para convertir un número de tipo Numeric en un entero se utiliza el comando
\lstinline{as.integer()}
\item[Logical]: Puede tomar cualquiera de los dos valores lógicos \lstinline{TRUE} (verdadero) o \lstinline{FALSE}
(falso).
\item[Character]: Es cualquier cadena de caracteres alfanuméricos. Deben introducirse entre comillas. Para convertir
cualquier número en una cadena de caracteres se utiliza el comando \lstinline{as.character()}.
\end{description}

Los valores de estos tipos de datos pueden operarse utilizando distintos operadores o funciones predefinidas para cada
tipo de datos. Los más habituales son:
\begin{description}
\item[Operadores aritméticos]: \lstinline{+} (suma), \lstinline{-} (resta), \lstinline{*} (producto), \lstinline{/}
(cociente), \lstinline{^} (potencia).
\item[Operadores de comparación]: \lstinline{>} (mayor), \lstinline{<} (menor), \lstinline{>=} (mayor o igual),
\lstinline{<=} (menor o igual), \lstinline{==} (igual), \lstinline{!=} (distinto).
\item[Operadores lógicos]:  \lstinline{&} (conjunción y), \lstinline{|} (disyunción o), \lstinline{!} (negación no).
\item[Funciones predefinidas]: \lstinline{sqrt()} (raíz cuadrada), \lstinline{abs()} (valor absoluto),
\lstinline{log()} (logarítmo neperiano), \lstinline{exp()} (exponencial), \lstinline{sin()} (seno), \lstinline{cos()}
(coseno), \lstinline{tan()} (tangente).
\end{description}

Al evaluar las expresiones aritméticas existe un orden de prioridad entre los operadores de manera que primero se
evaluan las funciones predefinidas, luego las potencias, luego los productos y cocientes, luego las sumas y restas,
luego los operadores de comparación, luego las negaciones, luego las conjunciones y finalmente las disyunciones. Para
forzar un orden de evaluación distinto del predefinido se pueden usar paréntesis. Por ejemplo
\begin{lstlisting}
> 2^2+4/2
[1] 6
> (2^2+4)/2
[1] 4
> 2^(2+4/2)
[1] 16
> 2^(2+4)/2
[1] 32
> 2^((2+4)/2)
[1] 8
\end{lstlisting}

También es posible asignar valores a variables mediante el operador de asignación \lstinline{=}. Una vez definidas, las
variables pueden usarse en cualquier expresión aritmética o lógica. Por ejemplo,
\begin{lstlisting}
> x=2
> y=x+2
> y
[1] 4
> y>x
[1] TRUE
> x>=y
[1] FALSE
> x==y-2
[1] TRUE
> x!=0 & !y<x
[1] TRUE
\end{lstlisting}

\section{Introducción y manipulación de datos}
Antes de realizar cualquier análisis de datos hay que introducir los datos que se quieren analizar. 

\subsection{Introducción de datos en línea de comandos}
Existen muchas formas de introducir datos en R pero aquí sólo veremos las más habituales. La forma más sencilla de
introducir datos es crear un vector de datos, mediante el comando \lstinline{c()}. Por ejemplo, para introducir las notas de 5
alumnos se debe teclear
\begin{lstlisting}
> nota = c(5.6,7.2,3.5,8.1,6.4)
\end{lstlisting}
Esto crea el vector \variable{nota} con el que posteriormente se pueden realizar cálculos como por ejemplo la
media
\begin{lstlisting}
> mean(nota)
[1] 6.16
\end{lstlisting}

Otra forma habitual de introducir los datos de una muestra es crear un conjunto de datos mediante el comando
\lstinline{data.frame()}. Por ejemplo, para crear un conjunto de datos a partir de las notas anteriores, hay que teclear
\begin{lstlisting}
> curso = data.frame(nota)
\end{lstlisting}
Esto crea una matriz de datos en la que cada columna se corresponde con una variable y cada fila con un individuo de la
muestra. En el ejemplo la matriz \variable{curso} sólo tendría una columna que se correspondería con las notas y 5
filas, cada una de ellas correspondiente a un alumno de la muestra. Es posible acceder a las variables de un conjunto de
datos con el operador dolar \lstinline{$}. Por ejemplo, para acceder a las notas hay que teclear
\begin{lstlisting}
> curso$nota
[1] 5.6 7.2 3.5 8.1 6.4
\end{lstlisting}
Es fácil añadir nuevas variables a un conjunto de datos, pero siempre deben tener el mismo tamaño muestral. Por ejemplo,
para añadir una nueva variable con el grupo (mañana o tarde) de los alumnos, hay que teclear
\begin{lstlisting}
> curso$grupo = c("m","t","t","m","m")
\end{lstlisting}
Ahora el conjunto de datos \variable{curso} tendría dos columnas, una para la nota y otra para el grupo de los alumnos.
Tecleando el nombre de cualquier objeto, se muestra su información:
\begin{lstlisting}
> curso
   nota   grupo
1   5.6      m
2   7.2      t
3   3.5      t
4   8.1      m
5   6.4      m
\end{lstlisting}

Cuando se introducen datos se puede utilizar el código \lstinline{NA} (not available), para indicar la ausencia del
dato.

Las variables definidas en cada sesión de trabajo quedan almacenas en la memoria interna de R. Es posible obtener un
listado de todos los objetos almacenados en la memoria mediante los comandos \lstinline{ls()}. Si se desea más información, el comando
\lstinline{ls.str()} además de mostrar los objetos de la memoria indica sus tipos y sus valores.
\begin{lstlisting}
> ls()
[1] "curso" "nota"  "x"     "y"    
> ls.str()
curso : 'data.frame':   5 obs. of  2 variables:
 $ nota : num  5.6 7.2 3.5 8.1 6.4
 $ grupo: chr  " m " " t " " t " " m " ...
nota :  num [1:5] 5.6 7.2 3.5 8.1 6.4
x :  num 2
y :  num 4
\end{lstlisting}

Para eliminar un objeto de la memoria se utiliza el comando \lstinline{rm()}.
\begin{lstlisting}
> ls()
[1] "curso" "nota"  "x"     "y"    
> rm(x,y)
> ls()
[1] "curso" "nota"
\end{lstlisting}

\subsection{Introducción de datos en R-comander}
Para introducir los datos desde R-commander hay que ir al menu \menu{Datos\flecha Nuevo conjunto de datos}. Con esto
aparecerá una ventana donde hay que darle un nombre al conjunto de datos y tras esto aparece la ventana de la
figura~\ref{g:matriz_datos} con una tabla en la que se pueden introducir los datos de la muestra. Al igual que antes, cada variable debe introducirse en una
columna y cada individuo en una fila.

\begin{figure}[htp]
\begin{center}
  \includegraphics[scale=0.6]{introduccion_r/img/matriz_datos}
  \caption{Ventana de introducción de datos}
  \label{g:matriz_datos}
\end{center}
\end{figure}

Haciendo click en la cabecera de cada fila es posible cambiar el nombre de la variable y su tipo. Los nombres de
variables deben comenzar con una letra o un punto y pueden contener cualquier letra, punto, subrayado (\lstinline{_}) o
número. En particular, no se pueden utilizar espacios en blanco. Además, R es distingue entre mayúsculas y minúsculas.

R permite definir más de un conjunto de datos en una misma sesión de trabajo, pero sólo puede haber uno activo en cada
momento. Para cambiar el conjunto de datos activo se utiliza el menú \menu{Datos\flecha Conjunto de datos activo\flecha
Seleccionar conjunto de datos activo}.

Otra forma habitual de introducir datos, que utilizaremos a menudo en las prácticas, es por medio de una hoja de cálculo
de Excel. Para ello basta con introducir los datos en la hoja de cálculo siguiendo los mismos criterios de
antes. Es conveniente poner los nombres de las variables en la primera fila de la hoja. Una vez guardada la hoja de
cálculo es posible cargarla en R como se indica en la sección de abrir datos.


\subsection{Guardar datos}
Una vez introducidos los datos, conviene guardarlos en un fichero para no tener que volver a introducirlos en futuras
sesiones. Para guardar el conjunto de datos activo en un fichero, se utiliza el menú \menu{Datos\flecha Conjunto de datos
activo\flecha Guardar el conjunto de datos activo}. Con esto aparece una ventana donde hay que darle un nombre al fichero y
seleccionar la carpeta donde se guardará. Los conjuntos de datos se guardan siempre en ficheros de R con extensión
\comando{rda}.

También es posible guardar los datos en un fichero de texto plano mediante el menú \menu{Datos\flecha Conjunto de datos
activo\flecha Exportar el conjunto de datos activo}. Tras esto aparece una venta donde se puede indicar entre otras cosas el
separador de los datos, que puede ser un espacio, tabuladores, comas u otro caracter, y tras aceptar aparece otra venta
donde hay que darle un nombre al fichero de texto y seleccionar la carpeta donde se guardará.

\subsection{Abrir datos}
Si los datos con los que se pretende trabajar ya están guardados en un fichero de R, entonces tendremos que abrir dicho
fichero. Para ello se utiliza el \menu{Datos\flecha Cargar conjunto de datos} y en la ventana que aparece se selecciona el
fichero que se desea abrir. Automáticamente se cargará el conjunto de datos del fichero y pasará a ser el conjunto de
datos activo.

También es posible cargar datos de ficheros con otros formatos, como por ejemplo una hoja de cálculo Excel. Para ello
se utiliza el menú \menu{Datos\flecha Importar datos\flecha desde Excel} y en la ventana que aparece se selecciona el fichero
con la hoja de cálculo Excel que se desea abrir. Si el fichero sólo contiene una hoja se cargará automáticamente,
mientras que si tiene varias, aparecerá una ventana en la que habrá que seleccionar la hoja que se quiere abrir.

\subsection{Modificación del conjunto de datos}
A menudo en los análisis hay que realizar transformaciones en los datos originales. A continuación se presentan las
transformaciones más habituales.
\subsection{Eliminación de datos}
Para eliminar una variable del conjunto de datos se utiliza el menú \menu{Datos\flecha Modificar variables del conjunto
de datos activo\flecha Eliminar variables del conjunto de datos} y en el cuadro de diálogo que aparece basta con
seleccionar la variable del conjunto de datos activo que se quiere eliminar.

Para eliminar individuos del conjunto de datos se utiliza el menú \menu{Datos\flecha Conjunto de datos activo \flecha
Borrar fila(s) del conjunto de datos activo} y en el cuadro de diálogo que aparece hay que indicar los números de
las filas que se desean eliminar.

\subsection{Filtrado de datos}
Cuando se desea realizar un análisis con un subconjunto de individuos del conjunto de datos activo que cumplen una
determinada condición, o bien con un subconjunto de variables, es posible filtrar el conjunto de datos activo para
quedarse con esos individuos y esas variables. Para ello se utiliza el menú \menu{Datos\flecha Conjunto de datos
activo\flecha Filtrar el conjunto de datos activo}. Con esto aparece un cuadro de diálogo en el que hay que indicar las
variables que se desean y en el cuadro \menu{Expresión de selección} indicar la condición lógica que tienen que cumplir
los individuos seleccionados. También se puede indicar el nombre del nuevo conjunto de datos ya que si se omite se
sobreescribirá el conjunto de datos activo. Por ejemplo, para seleccionar los alumnos del grupo de la mañana habría que
indicar la condición \lstinline{grupo==''m''} tal y como se muestra en la figura~\ref{g:filtrar_datos}.

\begin{figure}[htp]
\begin{center}
  \includegraphics[scale=0.6]{introduccion_r/img/filtrar}
  \caption{Ventana de filtrado de datos.}
  \label{g:filtrar_datos}
\end{center}
\end{figure}

\subsection{Cálculo de variables}
Para calcular una nueva variable a partir de las ya existentes en el conjunto de datos activo se utiliza el menú
\menu{Datos\flecha Modificar variables del conjunto de datos activo\flecha Calcular una nueva variable}. Con esto
aparece un cuadro de diálogo en la que hay que indicar el nombre de la nueva variable y la expresión a partir de la que
se calculará la nueva variable. Aquí puede introducirse cualquier expresión aritmética o lógica de R, y dentro de las
expresiones puede utilizarse cualquiera de las variables del conjunto de datos activo. Por ejemplo, para eliminar los
decimales de la variable \variable{nota} podría crearse una nueva variable \variable{puntuacion} multiplicando por 10
las notas, tal y como se muestra en la figura~\ref{g:calcular_variable}.

\begin{figure}[htp]
\begin{center}
  \includegraphics[scale=0.6]{introduccion_r/img/calcular}
  \caption{Ventana de cálculo de nuevas variables.}
  \label{g:calcular_variable}
\end{center}
\end{figure}

\subsection{Recodificación de variables}
Otra transformación habitual es la recodificación de variables que permite transformar los valores de una variable de
acuerdo a un conjunto de reglas de reescritura. Normalmente se utiliza para convertir una variable numérica en una
variable categórica que pueda usarse como un factor. 

Para recodificar una variable se utiliza el menú \menu{Datos\flecha Modificar variables del conjunto de datos
activo\flecha Recodificar variable}. Con esto aparece una ventana en la que hay que seleccionar la variable que se
desea recodificar, introducir el nombre de la nueva variable recodificada e introducir las reglas de recodificación en
el cuadro de texto \menu{Introducir directrices de recodificación}. Las reglas de recodificación siempre siguen la
sintaxis \lstinline{valor o rango de valores = nuevo valor} y pueden introducirse tantas reglas como se desee, cada una
en una línea. Al lado izquierdo de la igualdad puede introducirse un único valor, varios valores separados por comas, o
un rango de valores indicando el límite inferior y el límite superior del intervalo separados por el
operador \lstinline{:}. A la hora de definir el límite inferior puede utilizarse la palabra clave \lstinline{lo} para
referirse al menor de los valores de la muestra y \lstinline{hi} para referirse al mayor de los valores. Por ejemplo,
para recodificar la variable \variable{nota} en categorías correspondientes a las calificaciones ([0-5) Suspenso, [5,7)
Aprobado, [7,9) Notable y [9,10] Sobresaliente), habría que introducir las reglas que se muestran en la
figura~\ref{g:recodificar_variable}.

\begin{figure}[htp]
\begin{center}
  \includegraphics[scale=0.6]{introduccion_r/img/recodificar}
  \caption{Ventana de recodificación de variables}
  \label{g:recodificar_variable}
\end{center}
\end{figure}


\section{Manipulación de ficheros de resultados e instrucciones}

\subsection{Guardar los resultados}
Para guardar el contenido de la ventana de resultados en un fichero de texto plano se utiliza el menú
\menu{Fichero\flecha Guardar los resultados}. Con esto aparece un cuadro de diálogo en el que hay que indicar el nombre
del fichero y la carpeta donde se desea guardar. 

También es posible copiar los resultados para después pegarlos en un procesador de texto como Word. Existen también
paquetes como por ejemplo \comando{R2HTML} o \comando{xtable} que permite formatear la salida en \LaTeX o HTML.

\subsection{Guardar las instrucciones}
Las instrucciones de la ventana de instrucciones también pueden guardarse en un fichero de texto plano mediante el menú
\menu{Fichero\flecha Guardar las instrucciones} e indicando el nombre del fichero y la carpeta donde se guardará en el
cuadro de diálo que aparece. Esto opción es muy interesante de cara a repetir análisis o automatizar tareas repetitivas.

\subsection{Abrir un fichero de instrucciones}
Para abrir un fichero de texto con instrucciones de R se utiliza el menú \menu{Fichero\flecha Abrir fichero de
instrucciones} y después seleccionar el fichero que se desea abrir en el cuadro de diálogo que aparece. Con esto las
instrucciones del fichero se aparecen en la ventana de instrucciones y pueden seleccionarse y ejecutarse. 

\subsection{Guardar el entorno de trabajo}
Durante cualquier sesión de trabajo, R guarda en memoria las variables o los modelos que se definan. Cuando cierra el
programa esta información se pierde, de manera que si se desea continuar con un análisis conviene guardar el contenido
del entorno de trabajo antes de acabar la sesión de trabajo. Para ello se utiliza el menú \menu{Fichero\flecha Guardar
el entorno de trabajo de R} y como siempre hay que indicar el nombre del fichero y la carpeta donde se guardará.

\subsection{Cargar un entorno de trabajo}
Cuando se inice una nueva sesión de trabajo R cargará automáticamente en el entorno de trabajo cualquier fichero con
extensión \comando{.RData} que se encuentre en el directorio de trabajo. Para cambiar de directorio, y por tanto de
entorno de trabajo, se utiliza el menú \menu{Fichero\flecha Cambiar directorio de trabajo} y se selecciona el nuevo
directorio en el cuadro de diálogo que aparece.

\section{Extensión de Rcommander mediante plugins}
Una de las ventajas de Rcommander frente a otras interfaces gráficas de R, es que permite incorporar menús con
nuevas funcionalidades mediante un sistema de plugins. 

Para realizar algunos de los ejercicios que se plantean a lo largo de estas prácticas es necesario instalar los paquetes
\variable{TeachingExtras} y \variable{RcmdrPlugin.TeachingExtras} en R. Para ello hay que descargarse estos paquetes y luego, en la ventana
de R, seleccionar el menú \menu{Paquetes\flecha Instalar paquetes(s) a partir de archivos zip locales}, y en el cuadro de diálogo que aparece
seleccionar el fichero \variable{TeachingExtras.zip} y hacer click en el botón \boton{Aceptar}. Esto mismo debe repetirse para el paquete
\comando{RcmdrPlugin.TeachinExtras.zip}. Finalmente, en la ventana de Rcommander debe seleccionarse el menú \menu{Herramientas\flecha Cargar
plugin(s) de Rcmdr}, seleccionar el plugin \variable{RcmdrPlugin.TeachinExtras} y hacer click sobre el botón \boton{Aceptar}.

%Por ejemplo, el plugin \comando{RcmdrPlugin.Export} permite
%formatear la salida de Rcommander en \LaTeX\ o HTML. Para poder usarlo, primero hay que instalarlo como un paquete más,
%\begin{lstlisting}
%> install.packages("RcmdrPlugin.Export", dependencies=TRUE)
%\end{lstlisting} 
%y luego hay que ir al menú \menu{Herramientas\flecha Cargar plugin(s) de Rcmdr} y seleccionar el plugin deseado en la
%ventana que aparece. Esto reiniciará Rcommander y cargará un nuevo menú, en este caso, el menú \menu{Export}. Este
%plugin permite exportar en formato \LaTeX\ o HTML la última salida de la ventana de resultados de Rcommander. Para ello,
%hay que seleccionar el menú \menu{Export\flecha LaTeX or HTML\ldots (xtable)} con lo aparece el cuadro de diálogo de la
%figura \ref{g:export}, donde hay que seleccionar el tipo de salida (LaTeX o HMTL), las opciones de formateo y el nombre
%del fichero de salida en el campo \campo{file}. Si se ha elegido HTML, el fichero de salida puede visualizarse con
%cualquier navegador web.
%\begin{figure}[htp]
%\begin{center}
%  \includegraphics[scale=0.6]{introduccion_r/img/export}
%  \caption{Ventana de exportación de resultados (Plugin \comando{RcmdrPlugin.Export})}
%  \label{g:export}
%\end{center}
%\end{figure}

\section{Ayuda}
Otra de las ventajas de R es que tiene un sistema de ayuda muy documentado. Es posible conseguir ayuda sobre cualquier
función, prodecimiento o paquete simplemente tecleando el comando \lstinline{help()}. Por ejemplo, para obtener ayuda
sobre el comando \lstinline{mean} se teclearía
\begin{lstlisting}
> help("mean")
\end{lstlisting}
y con esto aparecerá una ventana de ayuda donde se describe la función y también aparecen ejemplos que ilustran su uso. 
Si no se conoce exactamente el nombre de la función o comando, se puede hacer una búsqueda aproximada con el comando
\lstinline{help.search()}. Por emplo, si no se recuerda el nombre de la función logarítmica, se podría
teclear
\begin{lstlisting}
> help("logarithm")
\end{lstlisting}
y con esto aparecerá una ventana con todos los ficheros de ayuda que contienen la palabra logarithm.

Finalmente, también es posible invocar la ayuda general de R con el menú \menu{Ayuda\flecha Star R
help system} con lo que aparecerá una página web desde donde podremos navegar a la información deseada.

Para más información sobre R se recomienda visitar la página \url{http://www.r-project.org/}, y para más información
sobre R-commander se recomienda visitar la página \url{http://socserv.mcmaster.ca/jfox/Misc/Rcmdr/}. También puede
encontrarse un buen manual de introducción a R-commander en el menú de ayuda de la propia interfaz gráfica de usuario.

\clearpage
\newpage

\section{Ejercicios resueltos}
\begin{enumerate}[leftmargin=*]
\item Crear un conjunto de datos con los datos de la siguiente muestra y guardarlo con el nombre
\comando{colesterol.rda}
\begin{center}
\begin{tabular}{|l|c|r|r|r|}
\hline
\multicolumn{1}{|c|}{Nombre} & \multicolumn{1}{c|}{Sexo} & \multicolumn{1}{c|}{Peso} & \multicolumn{1}{c|}{Altura} & \multicolumn{1}{c|}{Colesterol}\\
\hline
José Luis Martínez Izquierdo  & H &  85 & 179 & 182\\
Rosa Díaz Díaz & M & 65 & 173 & 232\\
Javier García Sánchez  & H & 71 & 181 & 191\\
Carmen López Pinzón & M &  65 & 170 & 200\\
Marisa López Collado & M &  51 & 158 & 148\\
Antonio Ruiz Cruz & H & 66 & 174 & 249\\
\hline
\end{tabular}
\end{center}

\begin{indicacion}{
Para crear el conjunto de datos: 
\begin{enumerate}
\item Seleccionar el menú \menu{Datos\flecha Nuevo conjunto de datos}.
\item En el cuadro de diálogo que aparece introducir el nombre del conjunto de datos y hacer click en el botón \boton{Aceptar}.
\item En la ventana del editor de datos hay que definir una variable en cada columna haciendo click sobre la cabecera de la columna. Con
ello aparece un cuadro de diálogo en el que hay que introducir el nombre de la variable, seleccionar el tipo de variable y pulsar la tecla
\comando{Intro}. 
\item Una vez definidas las variables hay que introducir los datos de cada variable en la columna correspondiente. 
\item Una vez introducidos los datos hay que cerrar la ventana del editor de datos.
\end{enumerate}
Para guardar los datos:
\begin{enumerate}
\item Selecionar el menú \menu{Datos\flecha Conjunto de datos activo\flecha Guardar el conjunto de datos activo}.
\item En el cuadro de diálogo que aparece hay que darle un nombre al fichero, seleccionar la carpeta donde guardarlo y hacer click en el
botón \boton{Aceptar}.
\end{enumerate}
}
\end{indicacion}

\item Abrir el fichero creado en el ejercicio anterior y realizar las siguientes operaciones:

\begin{enumerate}
\item Insertar una nueva variable \variable{Edad} con las edades de todos los individuos de la muestra.
\begin{center}
\begin{tabular}{|l|r|}
\hline
\multicolumn{1}{|c|}{Nombre} & \multicolumn{1}{c|}{Edad} \\
\hline
José Luis Martínez Izquierdo & 18 \\
Rosa Díaz Díaz & 32 \\
Javier García Sánchez & 24 \\
Carmen López Pinzón & 35 \\
Marisa López Collado & 46 \\
Antonio Ruiz Cruz & 68 \\
\hline
\end{tabular}
\end{center}

\begin{indicacion}{
Para abrir el conjunto de datos del ejercicio anterior:
\begin{enumerate}
\item Seleccionar el menú \menu{Datos\flecha Cargar conjunto de datos}.
\item En el cuadro de diálogo que aparece seleccionar la carpeta donde se encuentra el fichero con los datos del ejercicio anterior,
seleccionar el fichero y hacer click en el botón \boton{Aceptar}.
\end{enumerate}
Para insertar la variable \variable{Edad}:
\begin{enumerate}
\item Hacer click en el botón \boton{Editar conjunto de datos}.
\item En la ventana del editor de datos hacer doble click sobre la cabecera de la primera columna vacía.
\item En el cuadro de diálogo que aparece introducir el nombre de la variable \variable{Edad}, seleccionar como tipo \opcion{numeric} y
pulsar la tecla \comando{Intro}.
\item En la ventana del editor de datos introducir los datos de las edades en la columna correspondiente y cerrar la ventana del editor de
datos. 
\end{enumerate}
}
\end{indicacion}

\item Insertar un nuevo individuo con siguientes datos
\begin{quote}
Nombre: Cristóbal Campos Ruiz.\\
Edad: 44 años.\\
Sexo: Hombre.\\
Peso: 70 Kg.\\
Altura: 178 cm.\\
Colesterol: 220 mg/dl.
\end{quote}

\begin{indicacion}{
\begin{enumerate}
\item Hacer click en el botón \boton{Editar conjunto de datos}.
\item En la ventana del editor de datos introducir los datos de del nuevo individuo en la primera fila vacía y cerrar la ventana del editor
de datos.
\end{enumerate}
}
\end{indicacion}

\item Crear una nueva variable donde se calcule el índice de masa corporal de cada paciente mediante la formula:
\[
\text{imc} = \frac{\text{Peso (en Kg)}}{\text{Altura (en mt)}^2}
\]

\begin{indicacion}{
\begin{enumerate}
\item Seleccionar el menú \menu{Datos\flecha Modificar variables del conjunto de datos activo\flecha Calcular una nueva variable}.
\item En el cuadro de diálogo que aparece darle un nombre a la nueva variable, introducir la fórmula para calcular el índice de masa
corporal en el campo \campo{Expresión a calcular} y hacer click sobre el botón \boton{Aceptar}.
\end{enumerate} 
}
\end{indicacion}

\item Recodificar el índice de masa corporal de acuerdo a las siguientes categorías:
\begin{center}
\begin{tabular}{ll}
Menor de $18.5$ & Bajo peso\\
De $18.5$ a $24.5$ & Saludable\\
De $24.5$ a $30$ & Sobrepeso\\
Mayor de $30$  & Obeso
\end{tabular}
\end{center}

\begin{indicacion}{
\begin{enumerate}
\item Selecionar el menú \menu{Datos\flecha Modificar variables del conjunto de datos activo\flecha Recodificar variables}.
\item En el cuadro de diálogo que aparece darle un nombre a la nueva variable, introducir las reglas de recodificación en el campo
\campo{Introducir directrices de recodificación}:
\begin{quote}
\lstinline{lo:18.5 = ``Bajo peso''}\\
\lstinline{18.5:24.5 = ``Saludable''}\\
\lstinline{24.5:30 = ``Sobrepeso''}\\
\lstinline{30:hi = ``Obeso''}
\end{quote}
y hacer click sobre el botón \boton{Aceptar}.
\end{enumerate}
}
\end{indicacion}

%\item Importar el conjunto de datos del fichero de texto \comando{Nations.txt} que se encuentra en el subdirectorio \comando{etc} del
% paquete \comando{Rcmdr} y visualizar el conjunto de datos.

%\item Filtrar el conjunto de datos para quedarse únicamente con los países de Europa.

%\item Exportar la tabla con los datos de los países de Europa en formato HTML.

\end{enumerate}
\end{enumerate}
